﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using DTO;
using DAL;

namespace BLL
{
    public class LichSuGiaoDichBLL
    {
        #region Khai báo
        private LichSuGiaoDichDAL _lsgdDAL;
        private List<LichSuGiaoDichDTO> _lst;
        private LichSuGiaoDichDTO _lsgdDTO;
        #endregion

        #region Phương thức lấy danh sách lịch sử giao dịch
        /// <summary>
        /// Phương thức lấy danh sách lịch sử giao dịch
        /// </summary>
        /// <returns></returns>
        public List<LichSuGiaoDichDTO> GetListLichSuGiaoDich()
        {
            _lsgdDAL = new LichSuGiaoDichDAL();
            _lst = new List<LichSuGiaoDichDTO>();

            try
            {
                _lst = _lsgdDAL.GetListLichSuGiaoDich();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _lst;

        }
        #endregion

        #region Phương thức lấy danh sách lịch sử giao dịch có bộ lọc
        /// <summary>
        /// Phương thức lấy danh sách lịch sử giao dịch có bộ lọc
        /// </summary>
        /// <param name="tungay">DateTime - Từ ngày</param>
        /// <param name="denngay">DateTime - Đến ngày</param>
        /// <returns>List</returns>
        public List<LichSuGiaoDichDTO> GetListLichSuGiaoDich(DateTime tungay, DateTime denngay)
        {

            _lsgdDAL = new LichSuGiaoDichDAL();
            _lst = new List<LichSuGiaoDichDTO>();
            try
            {
                _lst = _lsgdDAL.GetListLichSuGiaoDich(tungay, denngay);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return _lst;

        }
        #endregion

        #region Phương thức lấy thông tin 1 lịch sử giao dịch dựa vào mã lịch sử giao dịch
        /// <summary>
        /// Phương thức lấy thông tin 1 lịch sử giao dịch dựa vào mã lịch sử giao dịch
        /// </summary>
        /// <param name="malsgd"></param>
        /// <returns></returns>
        public LichSuGiaoDichDTO GetLichSuGiaoDich(int malsgd)
        {
            _lsgdDAL = new LichSuGiaoDichDAL();
            _lsgdDTO = new LichSuGiaoDichDTO();

            try
            {
                _lsgdDTO = _lsgdDAL.GetLichSuGiaoDich(malsgd);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return _lsgdDTO;

        }
        #endregion

        #region Phương thức thêm 1 lịch sử giao dịch
        /// <summary>
        /// Phương thức thêm 1 lịch sử giao dịch
        /// </summary>
        /// <param name="ts"></param>
        /// <returns></returns>
        public int Them(LichSuGiaoDichDTO ts)
        {
            _lsgdDAL = new LichSuGiaoDichDAL();

            int index = -1;
            try
            {
                index = _lsgdDAL.Them(ts);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return index;

        }
        #endregion

        //#region Phương thức sửa thông tin 1 lịch sử giao dịch
        ///// <summary>
        ///// Phương thức sửa thông tin 1 lịch sử giao dịch
        ///// </summary>
        ///// <param name="ts"></param>
        ///// <returns></returns>
        //public int Sua(LichSuGiaoDichDTO ts)
        //{
        //    _lsgdDAL = new LichSuGiaoDichDAL();
        //    int index = -1;
        //    try
        //    {
        //        index = _lsgdDAL.Sua(ts);
        //    }
        //    catch (Exception ex)
        //    {
        //        throw new Exception(ex.Message);
        //    }
        //    return index;

        //}
        //#endregion

        #region Phương thức xóa 1 lịch sử giao dịch
        /// <summary>
        /// Phương thức xóa 1 lịch sử giao dịch
        /// </summary>
        /// <param name="ts"></param>
        /// <returns></returns>
        public int Xoa(LichSuGiaoDichDTO ts)
        {
            _lsgdDAL = new LichSuGiaoDichDAL();
            int index = -1;
            try
            {
                index = _lsgdDAL.Xoa(ts);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return index;

        }
        #endregion
    }
}
